home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / include / pcmcia / cistpl.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-12-24  |  14.3 KB  |  579 lines

  1. /*
  2.  * cistpl.h
  3.  *
  4.  * This program is free software; you can redistribute it and/or modify
  5.  * it under the terms of the GNU General Public License version 2 as
  6.  * published by the Free Software Foundation.
  7.  *
  8.  * The initial developer of the original code is David A. Hinds
  9.  * <dahinds@users.sourceforge.net>.  Portions created by David A. Hinds
  10.  * are Copyright (C) 1999 David A. Hinds.  All Rights Reserved.
  11.  *
  12.  * (C) 1999             David A. Hinds
  13.  */
  14.  
  15. #ifndef _LINUX_CISTPL_H
  16. #define _LINUX_CISTPL_H
  17.  
  18. #define CISTPL_NULL        0x00
  19. #define CISTPL_DEVICE        0x01
  20. #define CISTPL_LONGLINK_CB    0x02
  21. #define CISTPL_INDIRECT        0x03
  22. #define CISTPL_CONFIG_CB    0x04
  23. #define CISTPL_CFTABLE_ENTRY_CB    0x05
  24. #define CISTPL_LONGLINK_MFC    0x06
  25. #define CISTPL_BAR        0x07
  26. #define CISTPL_PWR_MGMNT    0x08
  27. #define CISTPL_EXTDEVICE    0x09
  28. #define CISTPL_CHECKSUM        0x10
  29. #define CISTPL_LONGLINK_A    0x11
  30. #define CISTPL_LONGLINK_C    0x12
  31. #define CISTPL_LINKTARGET    0x13
  32. #define CISTPL_NO_LINK        0x14
  33. #define CISTPL_VERS_1        0x15
  34. #define CISTPL_ALTSTR        0x16
  35. #define CISTPL_DEVICE_A        0x17
  36. #define CISTPL_JEDEC_C        0x18
  37. #define CISTPL_JEDEC_A        0x19
  38. #define CISTPL_CONFIG        0x1a
  39. #define CISTPL_CFTABLE_ENTRY    0x1b
  40. #define CISTPL_DEVICE_OC    0x1c
  41. #define CISTPL_DEVICE_OA    0x1d
  42. #define CISTPL_DEVICE_GEO    0x1e
  43. #define CISTPL_DEVICE_GEO_A    0x1f
  44. #define CISTPL_MANFID        0x20
  45. #define CISTPL_FUNCID        0x21
  46. #define CISTPL_FUNCE        0x22
  47. #define CISTPL_SWIL        0x23
  48. #define CISTPL_END        0xff
  49. /* Layer 2 tuples */
  50. #define CISTPL_VERS_2        0x40
  51. #define CISTPL_FORMAT        0x41
  52. #define CISTPL_GEOMETRY        0x42
  53. #define CISTPL_BYTEORDER    0x43
  54. #define CISTPL_DATE        0x44
  55. #define CISTPL_BATTERY        0x45
  56. #define CISTPL_FORMAT_A        0x47
  57. /* Layer 3 tuples */
  58. #define CISTPL_ORG        0x46
  59. #define CISTPL_SPCL        0x90
  60.  
  61. typedef struct cistpl_longlink_t {
  62.     u_int    addr;
  63. } cistpl_longlink_t;
  64.  
  65. typedef struct cistpl_checksum_t {
  66.     u_short    addr;
  67.     u_short    len;
  68.     u_char    sum;
  69. } cistpl_checksum_t;
  70.  
  71. #define CISTPL_MAX_FUNCTIONS    8
  72. #define CISTPL_MFC_ATTR        0x00
  73. #define CISTPL_MFC_COMMON    0x01
  74.  
  75. typedef struct cistpl_longlink_mfc_t {
  76.     u_char    nfn;
  77.     struct {
  78.     u_char    space;
  79.     u_int    addr;
  80.     } fn[CISTPL_MAX_FUNCTIONS];
  81. } cistpl_longlink_mfc_t;
  82.  
  83. #define CISTPL_MAX_ALTSTR_STRINGS    4
  84.  
  85. typedef struct cistpl_altstr_t {
  86.     u_char    ns;
  87.     u_char    ofs[CISTPL_MAX_ALTSTR_STRINGS];
  88.     char    str[254];
  89. } cistpl_altstr_t;
  90.  
  91. #define CISTPL_DTYPE_NULL    0x00
  92. #define CISTPL_DTYPE_ROM    0x01
  93. #define CISTPL_DTYPE_OTPROM    0x02
  94. #define CISTPL_DTYPE_EPROM    0x03
  95. #define CISTPL_DTYPE_EEPROM    0x04
  96. #define CISTPL_DTYPE_FLASH    0x05
  97. #define CISTPL_DTYPE_SRAM    0x06
  98. #define CISTPL_DTYPE_DRAM    0x07
  99. #define CISTPL_DTYPE_FUNCSPEC    0x0d
  100. #define CISTPL_DTYPE_EXTEND    0x0e
  101.  
  102. #define CISTPL_MAX_DEVICES    4
  103.  
  104. typedef struct cistpl_device_t {
  105.     u_char    ndev;
  106.     struct {
  107.     u_char     type;
  108.     u_char    wp;
  109.     u_int    speed;
  110.     u_int    size;
  111.     } dev[CISTPL_MAX_DEVICES];
  112. } cistpl_device_t;
  113.  
  114. #define CISTPL_DEVICE_MWAIT    0x01
  115. #define CISTPL_DEVICE_3VCC    0x02
  116.  
  117. typedef struct cistpl_device_o_t {
  118.     u_char        flags;
  119.     cistpl_device_t    device;
  120. } cistpl_device_o_t;
  121.  
  122. #define CISTPL_VERS_1_MAX_PROD_STRINGS    4
  123.  
  124. typedef struct cistpl_vers_1_t {
  125.     u_char    major;
  126.     u_char    minor;
  127.     u_char    ns;
  128.     u_char    ofs[CISTPL_VERS_1_MAX_PROD_STRINGS];
  129.     char    str[254];
  130. } cistpl_vers_1_t;
  131.  
  132. typedef struct cistpl_jedec_t {
  133.     u_char    nid;
  134.     struct {
  135.     u_char    mfr;
  136.     u_char    info;
  137.     } id[CISTPL_MAX_DEVICES];
  138. } cistpl_jedec_t;
  139.  
  140. typedef struct cistpl_manfid_t {
  141.     u_short    manf;
  142.     u_short    card;
  143. } cistpl_manfid_t;
  144.  
  145. #define CISTPL_FUNCID_MULTI    0x00
  146. #define CISTPL_FUNCID_MEMORY    0x01
  147. #define CISTPL_FUNCID_SERIAL    0x02
  148. #define CISTPL_FUNCID_PARALLEL    0x03
  149. #define CISTPL_FUNCID_FIXED    0x04
  150. #define CISTPL_FUNCID_VIDEO    0x05
  151. #define CISTPL_FUNCID_NETWORK    0x06
  152. #define CISTPL_FUNCID_AIMS    0x07
  153. #define CISTPL_FUNCID_SCSI    0x08
  154.  
  155. #define CISTPL_SYSINIT_POST    0x01
  156. #define CISTPL_SYSINIT_ROM    0x02
  157.  
  158. typedef struct cistpl_funcid_t {
  159.     u_char    func;
  160.     u_char    sysinit;
  161. } cistpl_funcid_t;
  162.  
  163. typedef struct cistpl_funce_t {
  164.     u_char    type;
  165.     u_char    data[0];
  166. } cistpl_funce_t;
  167.  
  168. /*======================================================================
  169.  
  170.     Modem Function Extension Tuples
  171.  
  172. ======================================================================*/
  173.  
  174. #define CISTPL_FUNCE_SERIAL_IF        0x00
  175. #define CISTPL_FUNCE_SERIAL_CAP        0x01
  176. #define CISTPL_FUNCE_SERIAL_SERV_DATA    0x02
  177. #define CISTPL_FUNCE_SERIAL_SERV_FAX    0x03
  178. #define CISTPL_FUNCE_SERIAL_SERV_VOICE    0x04
  179. #define CISTPL_FUNCE_SERIAL_CAP_DATA    0x05
  180. #define CISTPL_FUNCE_SERIAL_CAP_FAX    0x06
  181. #define CISTPL_FUNCE_SERIAL_CAP_VOICE    0x07
  182. #define CISTPL_FUNCE_SERIAL_IF_DATA    0x08
  183. #define CISTPL_FUNCE_SERIAL_IF_FAX    0x09
  184. #define CISTPL_FUNCE_SERIAL_IF_VOICE    0x0a
  185.  
  186. /* UART identification */
  187. #define CISTPL_SERIAL_UART_8250        0x00
  188. #define CISTPL_SERIAL_UART_16450    0x01
  189. #define CISTPL_SERIAL_UART_16550    0x02
  190. #define CISTPL_SERIAL_UART_8251        0x03
  191. #define CISTPL_SERIAL_UART_8530        0x04
  192. #define CISTPL_SERIAL_UART_85230    0x05
  193.  
  194. /* UART capabilities */
  195. #define CISTPL_SERIAL_UART_SPACE    0x01
  196. #define CISTPL_SERIAL_UART_MARK        0x02
  197. #define CISTPL_SERIAL_UART_ODD        0x04
  198. #define CISTPL_SERIAL_UART_EVEN        0x08
  199. #define CISTPL_SERIAL_UART_5BIT        0x01
  200. #define CISTPL_SERIAL_UART_6BIT        0x02
  201. #define CISTPL_SERIAL_UART_7BIT        0x04
  202. #define CISTPL_SERIAL_UART_8BIT        0x08
  203. #define CISTPL_SERIAL_UART_1STOP    0x10
  204. #define CISTPL_SERIAL_UART_MSTOP    0x20
  205. #define CISTPL_SERIAL_UART_2STOP    0x40
  206.  
  207. typedef struct cistpl_serial_t {
  208.     u_char    uart_type;
  209.     u_char    uart_cap_0;
  210.     u_char    uart_cap_1;
  211. } cistpl_serial_t;
  212.  
  213. typedef struct cistpl_modem_cap_t {
  214.     u_char    flow;
  215.     u_char    cmd_buf;
  216.     u_char    rcv_buf_0, rcv_buf_1, rcv_buf_2;
  217.     u_char    xmit_buf_0, xmit_buf_1, xmit_buf_2;
  218. } cistpl_modem_cap_t;
  219.  
  220. #define CISTPL_SERIAL_MOD_103        0x01
  221. #define CISTPL_SERIAL_MOD_V21        0x02
  222. #define CISTPL_SERIAL_MOD_V23        0x04
  223. #define CISTPL_SERIAL_MOD_V22        0x08
  224. #define CISTPL_SERIAL_MOD_212A        0x10
  225. #define CISTPL_SERIAL_MOD_V22BIS    0x20
  226. #define CISTPL_SERIAL_MOD_V26        0x40
  227. #define CISTPL_SERIAL_MOD_V26BIS    0x80
  228. #define CISTPL_SERIAL_MOD_V27BIS    0x01
  229. #define CISTPL_SERIAL_MOD_V29        0x02
  230. #define CISTPL_SERIAL_MOD_V32        0x04
  231. #define CISTPL_SERIAL_MOD_V32BIS    0x08
  232. #define CISTPL_SERIAL_MOD_V34        0x10
  233.  
  234. #define CISTPL_SERIAL_ERR_MNP2_4    0x01
  235. #define CISTPL_SERIAL_ERR_V42_LAPM    0x02
  236.  
  237. #define CISTPL_SERIAL_CMPR_V42BIS    0x01
  238. #define CISTPL_SERIAL_CMPR_MNP5        0x02
  239.  
  240. #define CISTPL_SERIAL_CMD_AT1        0x01
  241. #define CISTPL_SERIAL_CMD_AT2        0x02
  242. #define CISTPL_SERIAL_CMD_AT3        0x04
  243. #define CISTPL_SERIAL_CMD_MNP_AT    0x08
  244. #define CISTPL_SERIAL_CMD_V25BIS    0x10
  245. #define CISTPL_SERIAL_CMD_V25A        0x20
  246. #define CISTPL_SERIAL_CMD_DMCL        0x40
  247.  
  248. typedef struct cistpl_data_serv_t {
  249.     u_char    max_data_0;
  250.     u_char    max_data_1;
  251.     u_char    modulation_0;
  252.     u_char    modulation_1;
  253.     u_char    error_control;
  254.     u_char    compression;
  255.     u_char    cmd_protocol;
  256.     u_char    escape;
  257.     u_char    encrypt;
  258.     u_char    misc_features;
  259.     u_char    ccitt_code[0];
  260. } cistpl_data_serv_t;
  261.  
  262. typedef struct cistpl_fax_serv_t {
  263.     u_char    max_data_0;
  264.     u_char    max_data_1;
  265.     u_char    modulation;
  266.     u_char    encrypt;
  267.     u_char    features_0;
  268.     u_char    features_1;
  269.     u_char    ccitt_code[0];
  270. } cistpl_fax_serv_t;
  271.  
  272. typedef struct cistpl_voice_serv_t {
  273.     u_char    max_data_0;
  274.     u_char    max_data_1;
  275. } cistpl_voice_serv_t;
  276.  
  277. /*======================================================================
  278.  
  279.     LAN Function Extension Tuples
  280.  
  281. ======================================================================*/
  282.  
  283. #define CISTPL_FUNCE_LAN_TECH        0x01
  284. #define CISTPL_FUNCE_LAN_SPEED        0x02
  285. #define CISTPL_FUNCE_LAN_MEDIA        0x03
  286. #define CISTPL_FUNCE_LAN_NODE_ID    0x04
  287. #define CISTPL_FUNCE_LAN_CONNECTOR    0x05
  288.  
  289. /* LAN technologies */
  290. #define CISTPL_LAN_TECH_ARCNET        0x01
  291. #define CISTPL_LAN_TECH_ETHERNET    0x02
  292. #define CISTPL_LAN_TECH_TOKENRING    0x03
  293. #define CISTPL_LAN_TECH_LOCALTALK    0x04
  294. #define CISTPL_LAN_TECH_FDDI        0x05
  295. #define CISTPL_LAN_TECH_ATM        0x06
  296. #define CISTPL_LAN_TECH_WIRELESS    0x07
  297.  
  298. typedef struct cistpl_lan_tech_t {
  299.     u_char    tech;
  300. } cistpl_lan_tech_t;
  301.  
  302. typedef struct cistpl_lan_speed_t {
  303.     u_int    speed;
  304. } cistpl_lan_speed_t;
  305.  
  306. /* LAN media definitions */
  307. #define CISTPL_LAN_MEDIA_UTP        0x01
  308. #define CISTPL_LAN_MEDIA_STP        0x02
  309. #define CISTPL_LAN_MEDIA_THIN_COAX    0x03
  310. #define CISTPL_LAN_MEDIA_THICK_COAX    0x04
  311. #define CISTPL_LAN_MEDIA_FIBER        0x05
  312. #define CISTPL_LAN_MEDIA_900MHZ        0x06
  313. #define CISTPL_LAN_MEDIA_2GHZ        0x07
  314. #define CISTPL_LAN_MEDIA_5GHZ        0x08
  315. #define CISTPL_LAN_MEDIA_DIFF_IR    0x09
  316. #define CISTPL_LAN_MEDIA_PTP_IR        0x0a
  317.  
  318. typedef struct cistpl_lan_media_t {
  319.     u_char    media;
  320. } cistpl_lan_media_t;
  321.  
  322. typedef struct cistpl_lan_node_id_t {
  323.     u_char    nb;
  324.     u_char    id[16];
  325. } cistpl_lan_node_id_t;
  326.  
  327. typedef struct cistpl_lan_connector_t {
  328.     u_char    code;
  329. } cistpl_lan_connector_t;
  330.  
  331. /*======================================================================
  332.  
  333.     IDE Function Extension Tuples
  334.  
  335. ======================================================================*/
  336.  
  337. #define CISTPL_IDE_INTERFACE        0x01
  338.  
  339. typedef struct cistpl_ide_interface_t {
  340.     u_char    interface;
  341. } cistpl_ide_interface_t;
  342.  
  343. /* First feature byte */
  344. #define CISTPL_IDE_SILICON        0x04
  345. #define CISTPL_IDE_UNIQUE        0x08
  346. #define CISTPL_IDE_DUAL            0x10
  347.  
  348. /* Second feature byte */
  349. #define CISTPL_IDE_HAS_SLEEP        0x01
  350. #define CISTPL_IDE_HAS_STANDBY        0x02
  351. #define CISTPL_IDE_HAS_IDLE        0x04
  352. #define CISTPL_IDE_LOW_POWER        0x08
  353. #define CISTPL_IDE_REG_INHIBIT        0x10
  354. #define CISTPL_IDE_HAS_INDEX        0x20
  355. #define CISTPL_IDE_IOIS16        0x40
  356.  
  357. typedef struct cistpl_ide_feature_t {
  358.     u_char    feature1;
  359.     u_char    feature2;
  360. } cistpl_ide_feature_t;
  361.  
  362. #define CISTPL_FUNCE_IDE_IFACE        0x01
  363. #define CISTPL_FUNCE_IDE_MASTER        0x02
  364. #define CISTPL_FUNCE_IDE_SLAVE        0x03
  365.  
  366. /*======================================================================
  367.  
  368.     Configuration Table Entries
  369.  
  370. ======================================================================*/
  371.  
  372. #define CISTPL_BAR_SPACE    0x07
  373. #define CISTPL_BAR_SPACE_IO    0x10
  374. #define CISTPL_BAR_PREFETCH    0x20
  375. #define CISTPL_BAR_CACHEABLE    0x40
  376. #define CISTPL_BAR_1MEG_MAP    0x80
  377.  
  378. typedef struct cistpl_bar_t {
  379.     u_char    attr;
  380.     u_int    size;
  381. } cistpl_bar_t;
  382.  
  383. typedef struct cistpl_config_t {
  384.     u_char    last_idx;
  385.     u_int    base;
  386.     u_int    rmask[4];
  387.     u_char    subtuples;
  388. } cistpl_config_t;
  389.  
  390. /* These are bits in the 'present' field, and indices in 'param' */
  391. #define CISTPL_POWER_VNOM    0
  392. #define CISTPL_POWER_VMIN    1
  393. #define CISTPL_POWER_VMAX    2
  394. #define CISTPL_POWER_ISTATIC    3
  395. #define CISTPL_POWER_IAVG    4
  396. #define CISTPL_POWER_IPEAK    5
  397. #define CISTPL_POWER_IDOWN    6
  398.  
  399. #define CISTPL_POWER_HIGHZ_OK    0x01
  400. #define CISTPL_POWER_HIGHZ_REQ    0x02
  401.  
  402. typedef struct cistpl_power_t {
  403.     u_char    present;
  404.     u_char    flags;
  405.     u_int    param[7];
  406. } cistpl_power_t;
  407.  
  408. typedef struct cistpl_timing_t {
  409.     u_int    wait, waitscale;
  410.     u_int    ready, rdyscale;
  411.     u_int    reserved, rsvscale;
  412. } cistpl_timing_t;
  413.  
  414. #define CISTPL_IO_LINES_MASK    0x1f
  415. #define CISTPL_IO_8BIT        0x20
  416. #define CISTPL_IO_16BIT        0x40
  417. #define CISTPL_IO_RANGE        0x80
  418.  
  419. #define CISTPL_IO_MAX_WIN    16
  420.  
  421. typedef struct cistpl_io_t {
  422.     u_char    flags;
  423.     u_char    nwin;
  424.     struct {
  425.     u_int    base;
  426.     u_int    len;
  427.     } win[CISTPL_IO_MAX_WIN];
  428. } cistpl_io_t;
  429.  
  430. typedef struct cistpl_irq_t {
  431.     u_int    IRQInfo1;
  432.     u_int    IRQInfo2;
  433. } cistpl_irq_t;
  434.  
  435. #define CISTPL_MEM_MAX_WIN    8
  436.  
  437. typedef struct cistpl_mem_t {
  438.     u_char    flags;
  439.     u_char    nwin;
  440.     struct {
  441.     u_int    len;
  442.     u_int    card_addr;
  443.     u_int    host_addr;
  444.     } win[CISTPL_MEM_MAX_WIN];
  445. } cistpl_mem_t;
  446.  
  447. #define CISTPL_CFTABLE_DEFAULT        0x0001
  448. #define CISTPL_CFTABLE_BVDS        0x0002
  449. #define CISTPL_CFTABLE_WP        0x0004
  450. #define CISTPL_CFTABLE_RDYBSY        0x0008
  451. #define CISTPL_CFTABLE_MWAIT        0x0010
  452. #define CISTPL_CFTABLE_AUDIO        0x0800
  453. #define CISTPL_CFTABLE_READONLY        0x1000
  454. #define CISTPL_CFTABLE_PWRDOWN        0x2000
  455.  
  456. typedef struct cistpl_cftable_entry_t {
  457.     u_char        index;
  458.     u_short        flags;
  459.     u_char        interface;
  460.     cistpl_power_t    vcc, vpp1, vpp2;
  461.     cistpl_timing_t    timing;
  462.     cistpl_io_t        io;
  463.     cistpl_irq_t    irq;
  464.     cistpl_mem_t    mem;
  465.     u_char        subtuples;
  466. } cistpl_cftable_entry_t;
  467.  
  468. #define CISTPL_CFTABLE_MASTER        0x000100
  469. #define CISTPL_CFTABLE_INVALIDATE    0x000200
  470. #define CISTPL_CFTABLE_VGA_PALETTE    0x000400
  471. #define CISTPL_CFTABLE_PARITY        0x000800
  472. #define CISTPL_CFTABLE_WAIT        0x001000
  473. #define CISTPL_CFTABLE_SERR        0x002000
  474. #define CISTPL_CFTABLE_FAST_BACK    0x004000
  475. #define CISTPL_CFTABLE_BINARY_AUDIO    0x010000
  476. #define CISTPL_CFTABLE_PWM_AUDIO    0x020000
  477.  
  478. typedef struct cistpl_cftable_entry_cb_t {
  479.     u_char        index;
  480.     u_int        flags;
  481.     cistpl_power_t    vcc, vpp1, vpp2;
  482.     u_char        io;
  483.     cistpl_irq_t    irq;
  484.     u_char        mem;
  485.     u_char        subtuples;
  486. } cistpl_cftable_entry_cb_t;
  487.  
  488. typedef struct cistpl_device_geo_t {
  489.     u_char        ngeo;
  490.     struct {
  491.     u_char        buswidth;
  492.     u_int        erase_block;
  493.     u_int        read_block;
  494.     u_int        write_block;
  495.     u_int        partition;
  496.     u_int        interleave;
  497.     } geo[CISTPL_MAX_DEVICES];
  498. } cistpl_device_geo_t;
  499.  
  500. typedef struct cistpl_vers_2_t {
  501.     u_char    vers;
  502.     u_char    comply;
  503.     u_short    dindex;
  504.     u_char    vspec8, vspec9;
  505.     u_char    nhdr;
  506.     u_char    vendor, info;
  507.     char    str[244];
  508. } cistpl_vers_2_t;
  509.  
  510. typedef struct cistpl_org_t {
  511.     u_char    data_org;
  512.     char    desc[30];
  513. } cistpl_org_t;
  514.  
  515. #define CISTPL_ORG_FS        0x00
  516. #define CISTPL_ORG_APPSPEC    0x01
  517. #define CISTPL_ORG_XIP        0x02
  518.  
  519. typedef struct cistpl_format_t {
  520.     u_char    type;
  521.     u_char    edc;
  522.     u_int    offset;
  523.     u_int    length;
  524. } cistpl_format_t;
  525.  
  526. #define CISTPL_FORMAT_DISK    0x00
  527. #define CISTPL_FORMAT_MEM    0x01
  528.  
  529. #define CISTPL_EDC_NONE        0x00
  530. #define CISTPL_EDC_CKSUM    0x01
  531. #define CISTPL_EDC_CRC        0x02
  532. #define CISTPL_EDC_PCC        0x03
  533.  
  534. typedef union cisparse_t {
  535.     cistpl_device_t        device;
  536.     cistpl_checksum_t        checksum;
  537.     cistpl_longlink_t        longlink;
  538.     cistpl_longlink_mfc_t    longlink_mfc;
  539.     cistpl_vers_1_t        version_1;
  540.     cistpl_altstr_t        altstr;
  541.     cistpl_jedec_t        jedec;
  542.     cistpl_manfid_t        manfid;
  543.     cistpl_funcid_t        funcid;
  544.     cistpl_funce_t        funce;
  545.     cistpl_bar_t        bar;
  546.     cistpl_config_t        config;
  547.     cistpl_cftable_entry_t    cftable_entry;
  548.     cistpl_cftable_entry_cb_t    cftable_entry_cb;
  549.     cistpl_device_geo_t        device_geo;
  550.     cistpl_vers_2_t        vers_2;
  551.     cistpl_org_t        org;
  552.     cistpl_format_t        format;
  553. } cisparse_t;
  554.  
  555. typedef struct tuple_t {
  556.     u_int    Attributes;
  557.     cisdata_t     DesiredTuple;
  558.     u_int    Flags;        /* internal use */
  559.     u_int    LinkOffset;    /* internal use */
  560.     u_int    CISOffset;    /* internal use */
  561.     cisdata_t    TupleCode;
  562.     cisdata_t    TupleLink;
  563.     cisdata_t    TupleOffset;
  564.     cisdata_t    TupleDataMax;
  565.     cisdata_t    TupleDataLen;
  566.     cisdata_t    *TupleData;
  567. } tuple_t;
  568.  
  569. /* Special cisdata_t value */
  570. #define RETURN_FIRST_TUPLE    0xff
  571.  
  572. /* Attributes for tuple calls */
  573. #define TUPLE_RETURN_LINK    0x01
  574. #define TUPLE_RETURN_COMMON    0x02
  575.  
  576. #define CISTPL_MAX_CIS_SIZE    0x200
  577.  
  578. #endif /* LINUX_CISTPL_H */
  579.